package com.websem.shared;

import java.util.Set;

/**
 * <code>Film</code> entity object
 * 
 * @author issam
 * 
 */
public class Film {

	private String name;
	private String date;
	private Float duration;
	private String country;
	private Float rating;
	private String genre;
	private String language;
	private String synopsis;
	private Set<String> versions;

	private Set<Actor> actors;
	private Releaser releaser;
	private Set<Producer> producers;
	private Set<Prize> prizes;

	/**
	 * Constructor
	 * 
	 * @param name
	 */
	public Film() {
		super();
	}

	/**
	 * Constructor with all fields
	 * 
	 * @param name
	 * @param date
	 * @param duration
	 * @param country
	 * @param rating
	 * @param genre
	 * @param language
	 * @param synopsis
	 * @param versions
	 * @param actors
	 * @param releaser
	 * @param producers
	 * @param prizes
	 */
	public Film(String name, String date, Float duration, String country,
			Float rating, String genre, String language, String synopsis,
			Set<String> versions, Set<Actor> actors, Releaser releaser,
			Set<Producer> producers, Set<Prize> prizes) {
		super();
		this.name = name;
		this.date = date;
		this.duration = duration;
		this.country = country;
		this.rating = rating;
		this.genre = genre;
		this.language = language;
		this.synopsis = synopsis;
		this.versions = versions;
		this.actors = actors;
		this.releaser = releaser;
		this.producers = producers;
		this.prizes = prizes;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the date
	 */
	public String getDate() {
		return date;
	}

	/**
	 * @param date
	 *            the date to set
	 */
	public void setDate(String date) {
		this.date = date;
	}

	/**
	 * @return the duration
	 */
	public Float getDuration() {
		return duration;
	}

	/**
	 * @param duration
	 *            the duration to set
	 */
	public void setDuration(Float duration) {
		this.duration = duration;
	}

	/**
	 * @return the country
	 */
	public String getCountry() {
		return country;
	}

	/**
	 * @param country
	 *            the country to set
	 */
	public void setCountry(String country) {
		this.country = country;
	}

	/**
	 * @return the rating
	 */
	public Float getRating() {
		return rating;
	}

	/**
	 * @param rating
	 *            the rating to set
	 */
	public void setRating(Float rating) {
		this.rating = rating;
	}

	/**
	 * @return the genre
	 */
	public String getGenre() {
		return genre;
	}

	/**
	 * @param genre
	 *            the genre to set
	 */
	public void setGenre(String genre) {
		this.genre = genre;
	}

	/**
	 * @return the language
	 */
	public String getLanguage() {
		return language;
	}

	/**
	 * @param language
	 *            the language to set
	 */
	public void setLanguage(String language) {
		this.language = language;
	}

	/**
	 * @return the synopsis
	 */
	public String getSynopsis() {
		return synopsis;
	}

	/**
	 * @param synopsis
	 *            the synopsis to set
	 */
	public void setSynopsis(String synopsis) {
		this.synopsis = synopsis;
	}

	/**
	 * @return the versions
	 */
	public Set<String> getVersions() {
		return versions;
	}

	/**
	 * @param versions
	 *            the versions to set
	 */
	public void setVersions(Set<String> versions) {
		this.versions = versions;
	}

	/**
	 * @return the actors
	 */
	public Set<Actor> getActors() {
		return actors;
	}

	/**
	 * @param actors
	 *            the actors to set
	 */
	public void setActors(Set<Actor> actors) {
		this.actors = actors;
	}

	/**
	 * @return the releaser
	 */
	public Releaser getReleaser() {
		return releaser;
	}

	/**
	 * @param releaser
	 *            the releaser to set
	 */
	public void setReleaser(Releaser releaser) {
		this.releaser = releaser;
	}

	/**
	 * @return the producers
	 */
	public Set<Producer> getProducers() {
		return producers;
	}

	/**
	 * @param producers
	 *            the producers to set
	 */
	public void setProducers(Set<Producer> producers) {
		this.producers = producers;
	}

	/**
	 * @return the prizes
	 */
	public Set<Prize> getPrizes() {
		return prizes;
	}

	/**
	 * @param prizes
	 *            the prizes to set
	 */
	public void setPrizes(Set<Prize> prizes) {
		this.prizes = prizes;
	}
}
